import pandas as pd

# 读取Excel文件
df = pd.read_excel('男AAS计算表.xlsx')

# 定义需要求和的氨基酸列和对应的评分系数
amino_acids = {
    "异亮氨酸 (g/100g)": 0.04,
    "亮氨酸 (g/100g)": 0.07,
    "赖氨酸 (g/100g)": 0.055,
    "含硫氨基酸 (g/100g)": 0.035,
    "芳香族氨基酸 (g/100g)": 0.06,
    "苏氨酸 (g/100g)": 0.04,
    "色氨酸 (g/100g)": 0.01,
    "缬氨酸 (g/100g)": 0.05
}

# 将所有食物名称相同的食物的每种氨基酸先加起来
df_grouped = df.groupby('食物名称')[list(amino_acids.keys())].sum()

# 将数据转换为数值类型
for column in df_grouped.columns:
    df_grouped[column] = pd.to_numeric(df_grouped[column], errors='coerce')

# 计算每种氨基酸的评分
for aa, factor in amino_acids.items():
    df_grouped[aa + '评分'] = (df_grouped[aa] / factor) * 100

# 找到每种食物评分最小的一个氨基酸的名字和值
df_grouped['第一限制氨基酸'] = df_grouped[[aa + '评分' for aa in amino_acids.keys()]].idxmin(axis=1)
df_grouped['AAS评分'] = df_grouped[[aa + '评分' for aa in amino_acids.keys()]].min(axis=1)

# 输出结果
print("男生各种食物的第一限制氨基酸评分：")
for index, row in df_grouped.iterrows():
    print(f"食物:{index}  第一限制氨基酸为:{row['第一限制氨基酸']}  其AAS评分为:{row['AAS评分']}")
